A manufacturer represents a product to a customer as a set of features, where each feature is commonly designated by an alphanumeric feature code. A published specification of a product offering by a manufacturer typically includes the following: a model number; standard features; optional features; and feature compatibility.
In most existing systems, when a customer is interested in selecting a configuration for a new product, the customer configures a product by selecting a standard model and a set of optional features. For example, in a product configuration process used for trucks, a typical heavy duty truck model may have up to one thousand standard feature codes and up to ten thousand optional feature codes. As is apparent, an extremely large number of potential product configurations are possible even for a well-defined product type like a heavy duty truck.
During existing product configuration processes, a customer will typically use a sales configurator to ensure that all necessary product features are selected and that all features are mutually compatible. Upon receiving the customer order for the selected configuration, the manufacturer generates a bill of materials from the list of features, through use of an order configurator (also known as a “product configurator”) component or process, which converts sales features into a bill of materials using a set of rules. This simplified process of creating a product configuration, based on rule-based analysis of selected features from pre-engineered designs, is commonly referred to in the art as “mass customization.”
Mass customization, therefore, uses a defined system to produce custom output, providing many of the advantages of mass production processes with individual customization. Mass customization does not add extra costs so long as a customer selects only published (i.e., offered for sale and pre-engineered) features, and those published features are so chosen as to necessarily generate a complete bill of materials. When all of the features, the bill of materials, and rules defining the possible choices of product designs are in place, the process from sales quotes to bill of material generation may be automatically executed. Thus, mass customization of the product is sometimes possible at no incremental engineering cost.
The value of mass customization breaks down or becomes unsustainable, however, when customers request undocumented (i.e., not-yet engineered) features, especially if pre-engineered combinations account for a small percentage of total sales. When a pre-engineered product configuration is rarely selected by customers, the engineering and marketing investments turn into a loss. Forecasting prior to pre-engineering which combinations are likely to be popular may increase the probability that existing designs will be chosen more frequently, but cannot effectively address the fundamental problem: that pre-engineering must be done at all.
Rules-based configurators are a common approach often used in the mass customization design process. A user can select components from groups based on compatibility of the components for the product being configured. A model for the product is defined by the parts, the groups, the required choices, and by rules that define compatible relationships between the features and parts. In the majority of cases, a missing rule or feature requires an order-specific engineering intervention. The rules-based approach also has problems dealing with complex geometries. The limitations of rules-based configurators can be traced to two causes. First, features are symbols with no semantic content. Therefore, rules are usually expressed in propositional logic that has very limited expressive power. The number of rules grows very rapidly with the number of features and feature types, and every possible rule cannot be realistically expressed for complex products. Second, rule engines have very limited search, optimization, and constraint solving capability. They are not intended to perform engineering design. Instead, configurators are used for automating product and feature selection within the scope of already-engineered features, parts, and configurations.